package  
{
	import flash.display.MovieClip;
	import flash.events.Event;
	import flash.events.KeyboardEvent;
	import flash.events.MouseEvent;
	import flash.events.TimerEvent;
	import flash.ui.Keyboard;
	import flash.utils.Timer;
	/**
	 * ...
	 * @author Rodrigo Forti
	 */
	public class Main extends MovieClip
	{		
		var heroi:Kratos;
		var barra:MovieClip;
		var MC_barraEspartana : MovieClip;
		var indexHeroi:int = 0;
		var BO_esq:Boolean = true;
		var BO_dir:Boolean = true;
		var MC_comida:Comida;
		var TI_wave:Timer;
		var RD_randomWave:uint;
		var UI_delay:Number;
		
		var BO_FrutaCorreta:Boolean;
		var BO_wave32:Boolean;
		var BO_wave12121:Boolean;
		
		public function Main() 
		{
			iniciar()
		}
		
		public function iniciar():void
		{
			desenhartela();
			
			UI_delay = 10;
			TI_wave = new Timer(2000);
			TI_wave.start();
			TI_wave.addEventListener(TimerEvent.TIMER, criarWave, false, 0, true);
			stage.addEventListener(KeyboardEvent.KEY_DOWN, pressionar, false, 0, true);
			
			addEventListener(Event.ENTER_FRAME, update, false, 0, true);
		}
		
		private function desenhartela():void
		{
			heroi = new Kratos;
			heroi.x = stage.stageWidth / 2 - heroi.width/2;
			heroi.y = stage.stageHeight - 50;
			addChild(heroi);
			
			barraEspartana();
			desenharBarra();
			
		}
		private function barraEspartana():void
		{
			MC_barraEspartana = new RaivaEspartana();
			addChild(MC_barraEspartana);
			stage.addEventListener(KeyboardEvent.KEY_UP, MC_barraEspartana.TestarBotao); //SIMULAÇÃO DE HITTEST. Verificação se Kratos está acertando a fruta correta ou não.
		}
		private function desenharBarra():void
		{
			barra = new Barra;
			barra.x = stage.stage.stageWidth / 2 - 100;
			barra.y = stage.stageHeight / 2;
			addChild(barra);
			
			barra = new Barra;
			barra.x = stage.stage.stageWidth / 2 + 100;
			barra.y = stage.stageHeight / 2;
			addChild(barra);
			
			barra = new Barra;
			barra.x = stage.stage.stageWidth / 2 - 200;
			barra.y = stage.stageHeight / 2;
			addChild(barra);
			
			barra = new Barra;
			barra.x = stage.stage.stageWidth / 2 + 200;
			barra.y = stage.stageHeight / 2;
			addChild(barra);
			
			barra = new Barra;
			barra.x = stage.stage.stageWidth / 2;
			barra.y = stage.stageHeight / 2;
			addChild(barra);
		}
		
		private function pressionar(e:KeyboardEvent):void
		{
	
			if (indexHeroi <= 2 && indexHeroi >=-2)
			{
				if (e.keyCode == Keyboard.LEFT && BO_esq == true)
				{
					indexHeroi--
					heroi.x -= (100)
				}
	
				if (e.keyCode == Keyboard.RIGHT && BO_dir == true)
				{
					indexHeroi++
					heroi.x += (100)
				}
			}
		}
		
		public function update(e:Event):void
		{

			//trace (UI_delay)
			
// ------------ CONTROLE KRATOS -------------//
			if (heroi.x == 177.35)
			{
				BO_esq = false
			}
			
			else 
			{
				BO_esq = true
			}
			
			if (heroi.x == 577.35)
			{
				BO_dir = false
			}
			
			else
			{
				BO_dir = true
			}
			
// -------------- SPAWN WAVES ------------//


			if (BO_wave32 == true)
			{	
				UI_delay--
				
				if (UI_delay <= 0)
				{
					spawnWave32()
				}
			}
			
			if (BO_wave12121 == true)
			{
				UI_delay--
				if (UI_delay <= 0)
				{
					spawnWave12121()
				}
			}
		}
		
		private function criarWave(e:TimerEvent):void
		{
			RD_randomWave = Math.random() * 3
			
			if (RD_randomWave == 0)
			{
				for (var i:int = 0; i < 5; i++)
				{
					MC_comida = new Comida;
					MC_comida.x = 200 + 100*i
					MC_comida.y = 150;
					addChild(MC_comida);
				}
			}
			
			
			if (RD_randomWave == 1)
			{
				
				for (var k:int = 0; k < 3; k++)
				{
					MC_comida = new Comida;
					MC_comida.x = 200 + 100 * k
					MC_comida.y = 150;
					addChild(MC_comida)
				}
				
				BO_wave32 = true
				
			}
			
			if (RD_randomWave == 2)
			{
				for (var j:int = 0; j < 3; j++)
				{
					MC_comida = new Comida;
					MC_comida.x = 200 + 200 * j;
					MC_comida.y = 150;
					addChild(MC_comida);
				}
				
				BO_wave12121 = true;
			}

		}
		
		private function spawnWave32():void
		{

			MC_comida = new Comida
			MC_comida.x = 200 + 300
			MC_comida.y = 150
			addChild(MC_comida);
					
			MC_comida = new Comida
			MC_comida.x = 200 + 400
			MC_comida.y = 150
			addChild(MC_comida);
			
			UI_delay = 10;
			BO_wave32 = false;
				
		}
		
		private function spawnWave12121():void
		{
			MC_comida = new Comida
			MC_comida.x = 200 + 100
			MC_comida.y = 150
			addChild(MC_comida);
					
			MC_comida = new Comida
			MC_comida.x = 200 + 300
			MC_comida.y = 150
			addChild(MC_comida);
			
			UI_delay = 10;
			BO_wave12121 = false;
			
		}
		
	}

}